package Entidades;

import Logica.*;
import java.awt.Graphics;
import java.awt.Rectangle;


/**
 * Clase Entidad
* @author Jonathan Fritz - Santiago Salem - Kevin Schweitzer.
 */
public abstract class Entidad extends javax.swing.JLabel {

	protected int velocidad;
	protected Juego juego;
	protected boolean remover = false;
	private Rectangle miCampo = new Rectangle();
	private Rectangle suCampo = new Rectangle();
	

	/**
	 * Modifica el setBounds de acuerdo a lo recibido por parametros y a su correspondiente imagen
	 *  @param x, entero que indica posicion de X.
	 *  @param y, entero que indica posicion de Y.
	 */
	public void setBounds(int x, int y){
		setBounds(x,y,getIcon().getIconWidth(),getIcon().getIconHeight());
	}
	
	/**
	 * Retorna la velocidad de la entidad.
	 *  @return velocidad de la entidad
	 */
	public int getVelocidad(){
		return velocidad;
	}
	
	
	/**
	 * Indica el comportarmiento que debe adoptar al producirse una colision.
	 *  @param otro, Entidad con la que colisiono.
	 */
	public abstract void colisionCon(Entidad otro);
	
	/**
	 * Verifica si la entidad colisiono con otra.
	 *  @return verdadero si se produjo colision, sino falso.
	 */
	public boolean colisionoCon(Entidad otro){
		miCampo = this.getBounds();
		suCampo = otro.getBounds();

		return miCampo.intersects(suCampo);		
	}
	
	/**
	 * Indica si es seguro remover a la entidad.
	 *  @return verdadero si se debe remover, sino falso.
	 */
	public boolean seguroRemover(){
		return remover;
	}
}
